<?
//require_once("file://///192.168.252.189/cb/opyman/Funciones/ora_linux.php");
$user_local = "acom";
$pass_local = "acom";
//FUNCIONES DE CONEXION
  $tnsName = "//db_host[:port]/database_name"; // El nombre del servidor debe especificarse en este formato
function conectar($userV,$pass) {
  $user = $userV;
  return ora_logon($user,$pass); 
  }  
  function ora_logon($usuario, $password) {
    $con = oci_connect($usuario, $password,"//192.168.252.101:1521/aplic"); //$tnsName); 
	// El usuario no debe contener el '@database_name'
    return $con; }

  function ora_open($conexion) {
    $cursor[0] = $conexion;
    return $cursor; }

  function ora_parse(&$cursor, $consulta) {
    $cursor[1] = oci_parse($cursor[0],$consulta);
    return $cursor; }

  function ora_exec(&$cursor) {
    oci_execute($cursor[1]);
    $cursor[2] = 1;
    return $cursor; }
	
  function ora_commit(&$conn) {
    oci_commit($conn);
	return true; }	

  function ora_rollback(&$conn) {
    oci_rollback($conn);
	return true; }

  function ora_fetch(&$cursor) {
    if ($cursor[2] == 1) $cursor[2] = 0;
    return oci_fetch($cursor[1]);
  }

  function ora_fetch_into(&$cursor, &$vector) {    
    if ($cursor[2] == 1) $cursor[2] = 0;
	$vector = oci_fetch_row($cursor[1]);
    return $vector;	
  }

  function ora_getcolumn(&$cursor, $indice) {
    if ($cursor[2] == 1) {
       ora_fetch($cursor);
       $cursor[2] = 0;  }
    $valor = oci_result($cursor[1],$indice+1);
    return $valor; }

  function ora_close(&$cursor) {
    unset($cursor[1]); }

  function ora_logoff($conexion) {
    oci_close($conexion);  }
	
function desconectar($conn)  {
  ora_logoff($conn);
  }
function fecha_con_letras()  {
  $dia = date("d");
  $mes = date("m");
  $ano = date("Y");
  if($mes == "01")$mes = "Enero";if($mes == "02")$mes = "Febrero";if($mes == "03")$mes = "Marzo";
  if($mes == "04")$mes = "Abril";if($mes == "05")$mes = "Mayo";if($mes == "06")$mes = "Junio";
  if($mes == "07")$mes = "Julio";if($mes == "08")$mes = "Agosto";if($mes == "09")$mes = "Septiembre";
  if($mes == "10")$mes = "Octubre";if($mes == "11")$mes = "Noviembre";if($mes == "12")$mes = "Diciembre";
  $fecha = $dia." de ".$mes." de ".$ano;
  return $fecha;
  }

//Calcula cual es la valvula que cierra el hidrante que tiene el idsig recibido
function d_valvula($idsig) {

$sql = "select v.idsig
from valvula as v,
(
select cm.geometria
from c_m_l as cm, hidrante as h
where h.idsig = '$idsig' and h.geometria && cm.geometria and intersects(cm.geometria,h.geometria)
) c
where c.geometria && v.geometria and intersects(c.geometria,v.geometria)";

$resp = pg_query(conectar_a('GIS'),$sql);
$values = pg_fetch_row($resp);

$idsig_v = $values[0];
return 	$idsig_v;
	
}

function existe($idsig) {
	$nuevo = substr($idsig, 0, 1);
	$element = substr($idsig, 1, 1);
//H PARA HIDRANTES
//echo $nuevo;
if($nuevo!='N')
{
	if ($element == "H")
	{
		$sql = "select idsig
		from hidrante 
		where idsig = '$idsig'";
		$resp = pg_query(conectar_a('GIS'),$sql);
		$values = pg_fetch_row($resp);
		$idsig_h = $values[0];
		$idsig_v = d_valvula($idsig);
		
		if ($idsig_h == "" and $idsig_v == "")
				$validacion=5;
		else
			if ($idsig_h != "" and $idsig_v == "")
				$validacion=4;
		else
			if ($idsig_h != "" and $idsig_v != "")
				$validacion=3;
	}
	else
	{	//V Para Valvulas
		if ($element == "V")
		{
			
				$sql = "select idsig
				from valvula 
				where idsig = '$idsig'";
				$resp = pg_query(conectar_a('GIS'),$sql);
				$idsig_v = pg_fetch_row($resp);
			if ($idsig_v=="")
				$validacion=2;
			else
				$validacion=1;
		}
	}
}
else
{
	if ($element == "H")
	{
		$validacion=7;
	}
	else
	{	//V Para Valvulas
		if ($element == "V")
		{
			
		$validacion=6;
		}
	}
}

	
return 	$validacion;
	
}

//Recibe un array con los valores de un hidrante consultado a postgres segun un idsig dado y retorna los valores listos para ser insertados en oracle.
function p_hidrante($values) {
		// Altera la estructura del numero para que pueda ser ingresado en la base de datos de oracle.
		//Homologacion lenguaje postgres oracle		
		$param[0] = 'HMARCA';
		$param[1] = 'HSUBTYPE';
		$param[2] = 'DIAMETRO_ID';
		$param[3] = 'TIPOESPACIOPUBLICO_ID';
		$param[4] = 'MATERIALESPACIOPUB_ID';
		$param[5] = 'ESTADOFISICOH_ID';
		$param[6] = 'IDSIG';
		$param[7] = 'MATERIAL_ID';
		$param[8] = 'ESTADORED_ID';
		$param[9] = 'ANCILLARYROLE';
		$param[10] = 'ENABLED';
		$param[11] = 'IDELEMENTO';
		$param[12] = 'NROAVISOS';
		$param[13] = 'IDZONASERVICIO';
		$param[14] = 'ROTACIONSIMBOLO';
		$param[15] = 'COTARRASANTE';
		$param[16] = 'MDUSUARIO';
		$param[17] = 'MDCALIDADDATO';
		$param[18] = 'OBSERVACIONES';
		$param[19] = 'NROOBRA';
		$param[20] = 'ZONA';
		$param[21] = 'CONTRATISTA';
		$param[22] = 'LOCALIZACIONRELATIVA';
		$param[23] = 'FECHAPROGVISITA';
		$param[24] = 'MDFECHACARGUE';
		$param[25] = 'FECHAVISITATERRENO';
		$param[26] = 'TIPOOPERACION';
		$param[27] = 'VINCULO';
		$param[28] = 'VINCULOSID';
		
		$cont = 0;
	for ($i = 0; $i <= 28; $i++) {
		if ($values[$i] != "" && $cont == 0) {
			$cont = 1;
			$parametros = $param[$i];
			$consulta = "'".$values[$i];
		}
		else if ($values[$i] != "" && $cont == 1) {
			$parametros = $parametros.','.$param[$i];
			if ($i == 23 || $i == 24 || $i == 25){
				$values[$i] = str_replace("'", "", "$values[$i]");
				$values[$i] = "'to_date('".$values[$i]."','YYYY-MM-DD')'";
			}
			/*if ($i == 2 || $i == 14 || $i == 15){
				$values[$i] = str_replace(".", ",", "$values[$i]");
			}*/
			if ($i == 2 || $i == 14 || $i == 15){
				$values[$i] = str_replace("'", "", "$values[$i]");
				$values[$i] = "'to_number(".$values[$i].")'";
			}
			$consulta = $consulta."'".','."'".$values[$i];
			$consulta = str_replace("''to_date", "to_date", "$consulta");
			$consulta = str_replace(")''", ")", "$consulta");
			$consulta = str_replace("''to_number", "to_number", "$consulta");				
 		}
	}
$consulta = $consulta."'";
$parycons[0] = $parametros;
$parycons[1] = $consulta;

return $parycons;
}

//Recibe un array con los valores de una valvula consultada a postgres segun un idsig dado y retorna los valores listos para ser insertados en oracle.
function p_valvula($values) {
		// Altera la estructura del numero para que pueda ser ingresado en la base de datos de oracle.
		//Homologacion lenguaje postgres oracle
		$param[0] = 'VSUBTYPE';
		$param[1] = 'VMARCA';
		$param[2] = 'DIAMETRO_ID';
		$param[3] = 'UBICACION_ID';
		$param[4] = 'ESTADOOPERACION_ID';
		$param[5] = 'MATERIALESPACIOPUB_ID';
		$param[6] = 'TIPOESPACIOPUBLICO_ID';
		$param[7] = 'ESTADOFISICOCAJA_ID';
		$param[8] = 'ESTADOFISICOVALVULA_ID';
		$param[9] = 'FUNCIONVALVULA_ID';
		$param[10] = 'VALVULABYPASS_ID';
		$param[11] = 'SENTIDOOPERACION_ID';
		$param[12] = 'IDSIG';
		$param[13] = 'MATERIAL_ID';
		$param[14] = 'ESTADORED_ID';
		$param[15] = 'ANCILLARYROLE';
		$param[16] = 'ENABLED';
		$param[17] = 'IDELEMENTO';
		$param[18] = 'IDOBTECASO';
		$param[19] = 'NROAVISOS';
		$param[20] = 'FECHAINTALACION';
		$param[21] = 'IDZONASERVICIO';
		$param[22] = 'ROTACIONSIMBOLO';
		$param[23] = 'COTARASANTE';
		$param[24] = 'NOMBRE';
		$param[25] = 'MDUSUARIO';
		$param[26] = 'MDCALIDADDATO';
		$param[27] = 'OBSERVACIONES';
		$param[28] = 'GRADO';
		$param[29] = 'PERDIDACARGA';
		$param[30] = 'MOTORIZADA';
		$param[31] = 'PARAMETROPRESION';
		$param[32] = 'VUELTASCERRAR';
		$param[33] = 'NROOBRA';
		$param[34] = 'UT_ID';
		$param[35] = 'ZONA';
		$param[36] = 'PROFUNDIDAD';
		$param[37] = 'FECHAPROGVISITA';
		$param[38] = 'FECHAVISITATERRENO';
		$param[39] = 'IDREDMATRIZ';
		$param[40] = 'ACTIVO';
		$param[41] = 'CONTRATISTA';
		$param[42] = 'LOCALIZACIONRELATIVA';
		$param[43] = 'MDFECHACARGUE';
		$param[44] = 'AUTORIZADA';
		$param[45] = 'NUMEROPOLIZA';
		$param[46] = 'PRESIONMEDIA';
		$param[47] = 'TIPOOPERACION';
		$param[48] = 'VIGENCIAPOLIZA';
		$param[49] = 'VINCULO';
		$param[50] = 'VINCULOSID';

		$cont = 0;
	for ($i = 0; $i <= 50; $i++) {
		if ($values[$i] != "" && $cont == 0) {
			$cont = 1;
			$parametros = $param[$i];
			$consulta = "'".$values[$i];
		}
		else if ($values[$i] != "" && $cont == 1) {
			$parametros = $parametros.','.$param[$i];
			if ($i == 20 || $i == 37 || $i == 38 || $i == 43){
				$values[$i] = str_replace("'", "", "$values[$i]");
				$values[$i] = "'to_date('".$values[$i]."','YYYY-MM-DD')'";
			}
			/*if ($i == 2 || $i == 22 || $i == 23){
				$values[$i] = str_replace(".", ",", "$values[$i]");
			}*/
			if ($i == 2 || $i == 22 || $i == 23 || $i == 29 || $i == 36 || $i == 46){
				$values[$i] = str_replace("'", "", "$values[$i]");
				$values[$i] = "'to_number(".$values[$i].")'";
			}
			if ($i == 10 || $i == 11){
				$values[$i] = str_replace("SI", "0", "$values[$i]");
				$values[$i] = str_replace("NO", "1", "$values[$i]");
			}
			$consulta = $consulta."'".','."'".$values[$i];
			$consulta = str_replace("''to_date", "to_date", "$consulta");
			$consulta = str_replace(")''", ")", "$consulta");
			$consulta = str_replace("''to_number", "to_number", "$consulta");			
 		}
	}
$consulta = $consulta."'";
$parycons[0] = $parametros;
$parycons[1] = $consulta;

return $parycons;
}



